Ext.ns('WaterPlanView');

WaterPlanView = Ext.extend(Ext.Panel, {
	// 条件搜索Panel
	searchPanel : null,
	// 数据展示Panel
	gridPanel : null,
	// GridPanel的数据Store
	store : null,
	// 头部工具栏
	topbar : null,
	// 构造函数
	constructor : function(_cfg) {
		Ext.applyIf(this, _cfg);
		// 初始化组件
		this.initUIComponents();
		// 调用父类构造
		WaterPlanView.superclass.constructor.call(this, {
					id : 'WaterPlanView',
					title : '水表计划',
					iconCls : 'menu-myplan',
					region : 'center',
					layout : 'border',
					items : [this.searchPanel, this.gridPanel]
				});
	},// end of constructor

	// 初始化组件
	initUIComponents : function() {
		var isAddGranted  = isGranted('WA_ADDPLAN');
		var isExecGranted = isGranted('WA_EXECPLAN');
		
		// 初始化搜索条件Panel
		this.searchPanel = new Ext.FormPanel({
					id : 'WaterPlanSearchForm',
					height : 70,
					region : 'north',
					title : '查询条件',
					frame : false,
					border : false,
					layout : 'column',
					labelWidth : 70,
					labelAlign : 'right',
					labelAlign : 'right',
					layoutConfig : {
			                padding : '5',
			                align : 'middle'
			           },
			           defaults : {
							columnWidth : 0.30,
							layout : 'form',
							border : false,
							style : 'padding-left:10px;padding-top:10px;',
							defaults : {
								xtype : 'textfield',
								width : 100
						}
					},
					items : [{
								items : [{
									fieldLabel : '计划名称',
									xtype : 'textfield',
									width : 120,
									name : 'Q_planName_S_LK'
										}]
							}, {
								columnWidth : 0.25,
								items : [{
									width : 100,
									fieldLabel : '状态',
									hiddenName : 'Q_planStatus_L_EQ',
									xtype : 'combo',
									mode : 'local',
									editable : false,
									triggerAction : 'all',
									store : [['', '全部'], ['0', '休眠中'],['1', '执行中'],['2', '已执行']],
									value : ''
								}]
							}, {
								columnWidth : 0.15,
								items : [{
									style : 'padding-left:15px;',
									xtype : 'button',
									text : '查询',
									width : 100,
									iconCls : 'search',
									handler : function() {
										var searchPanel = Ext.getCmp('WaterPlanSearchForm');
										var gridPanel = Ext.getCmp('WaterPlanGrid');
										if (searchPanel.getForm().isValid()) {
											$search({
														searchPanel : searchPanel,
														gridPanel : gridPanel
													});
										}
									}
								}]
							}]
				});// end of the searchPanel

		this.store = new Ext.data.JsonStore({
					url : __ctxPath+ '/pdaweb/listWaterMeterPlan.do',
					root : 'result',
					totalProperty : 'totalCounts',
					id : 'id',
					fields : ['planId', 'planName', 'executor',
							'accountDay', 'lastEditDt','department.depName',
							'meterCount', 'planStatus', 'isAutoPlan'],
					remoteSort : true
				});
		this.store.load({
					params : {
						start : 0,
						limit : 15
					}
				});

		var cm = new Ext.grid.ColumnModel({
			columns : [new Ext.grid.RowNumberer(), {
						header : '计划名称',
						width : 130,
						dataIndex : 'planName'
					}, {
						header : '表数',
						width : 30,
						dataIndex : 'meterCount'
					}, {
						header : '月结日',
						width : 30,
						dataIndex : 'accountDay'
					}, {
						header : '管理处',
						width : 95,
						dataIndex : 'department.depName'
					}, {
						header : '最后编辑日期',
						width :50,
						dataIndex : 'lastEditDt'
					}, {
						header : '状态',
						dataIndex : 'planStatus',
						width :30,
						renderer : function(v) {
							return v == "1" ? "<span style='color:#0f0;'>执行中</span>"
									: (v == "2" ? "已执行" : "休眠中");
						}
					}, {
						header : '操作',
						dataIndex : 'planId',
						width : 45,
						sortable : false,
						renderer : function(value, metadata, record, rowIndex,
								colIndex) {
							var planId = record.data.planId;
							var planStatus = record.data.planStatus;
                            var accountDay = record.data.accountDay;
                            var isAutoPlan = record.data.isAutoPlan;
							var str = '&nbsp;<button title="明细" value=" " class="btn-showDetail" onclick="WaterPlanView.showTask('
									+ planId + ')">&nbsp</button>';
							if (isAddGranted && planStatus != '1') {
								  str += '&nbsp;<button title="编辑" value=" " class="btn-edit" onclick="WaterPlanView.edit('
									  + planId + ')">&nbsp</button>';
							}
							if (isExecGranted && planStatus == '0' && isAutoPlan == 0) {
								str += '&nbsp;<button title="执行" value=" " class="btn-transition" onclick="WaterPlanView.executeShow('
									+ planId + ','+planStatus+','+accountDay+')">&nbsp</button>';
							}
							if (isExecGranted && isAutoPlan == 1){
								str += '&nbsp;<button title="自动执行变更" value=" " class="btn-transition" onclick="WaterPlanView.executeAlter('
									+ planId + ','+planStatus+','+accountDay+','+isAutoPlan+')">&nbsp</button>';
							}
							return str;
						}
					}],
			defaults : {
				sortable : true,
				menuDisabled : false
			}
		});// end of the cm


		this.gridPanel = new Ext.grid.GridPanel({
					id : 'WaterPlanGrid',
					tbar : this.topbar,
					region : 'center',
					store : this.store,
					trackMouseOver : true,
					disableSelection : false,
					loadMask : true,
					autoHeight : true,
					forceFit : true,
					cm : cm,
					viewConfig : {
						forceFit : true,
						enableRowBody : false,
						showPreview : false
					},
					bbar : new Ext.PagingToolbar({
								pageSize : 15,
								store : this.store,
								displayInfo : true,
								displayMsg : '当前显示从{0}至{1}， 共{2}条记录',
								emptyMsg : "当前没有记录"
							})
				});
				
		if(isAddGranted){
			this.gridPanel.add(new Ext.Toolbar({
					id : 'WaterPlanFootBar',
					height : 30,
					bodyStyle : 'text-align:left',
					items : [new Ext.Button({
								iconCls : 'btn-add',
								text : '添加',
								handler : function() {
									new WaterPlanForm().show();
								}
							})]
				}));
		}
	}// end of the initUIComponents
});

/**
 * 执行计划界面
 */
WaterPlanView.executeShow = function(planId,planStatus,accountDay) {
	new WaterPlanExecuteForm({
		planId : planId,
		planStatus : planStatus,
		accountDay : accountDay
	}).show();
}

/**
 * 执行变更界面
 */
WaterPlanView.executeAlter = function(planId,planStatus,accountDay,isAutoPlan){
	new WaterPlanExecuteForm({
		planId : planId,
		planStatus : planStatus,
		accountDay : accountDay,
		isAutoPlan : isAutoPlan
	}).show();
}

/**
 * 
 */
WaterPlanView.edit = function(id) {
	new WaterPlanForm({
				planId : id
			}).show();
}

WaterPlanView.showTask = function(id) {
	new WaterPlanTaskView({
				planId : id
			}).show();
}
